/*
 * Copyright (c) 2021, Polsys Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * File name: sc8p1715_config.h
 * 
 * Description: 
 * 		sc8p1715 MCU驱动的配置文件。
 * 
 * Change Logs:
 * Date           Author       Notes
 * 2021/04/16     刘言         初版
 * 2022/01/14     黄均铭       兼容SC8P171xE系列
 */
#ifndef _SC8P1715_CONFIG_H_
#define _SC8P1715_CONFIG_H_

// MCU型号常量定义[无需修改]
#define SC8P1715    0
#define SC8P171xE   1

// MCU型号选择
#define SC8P_MCU_TYPE   SC8P1715

// 振荡器频率MHZ，这不是设置项，是告诉其他组件振荡器频率。振荡器频率由选项字节决定。
#define MCU_FOSC        8

// FSYS时钟源选择
// 0 - LFINTOSC(32KHZ)
// 1 - FOSC/64
// 2 - FOSC/32
// 3 - FOSC/16
// 4 - FOSC/8
// 5 - FOSC/4(默认,可节省代码量)
// 6 - FOSC/2
// 7 - FOSC/1
#define MCU_FSYS_SEL    6       

// 中断使能状态的初始值，在这里统一初始化，使能
#define MCU_INTCON_INIT     PEIE_EN|T0IE_EN|RBIE_EN
#define MCU_PIE1_INIT       TMR2IE_EN|ADIE_EN|RAIE_EN


// 以下配置选项在调用了对应外设的初始化函数后生效


// INT引脚中断有效跳变 1:上升沿；0:下降沿
#define INT_EDG         0

// TIM0初始化配置

#define TIM0_CLK_SOURCE     0       // 时钟源。0:FSYS/4,1:T0CKI（外部管脚，一般用于计数或者精准计时）.
#define TIM0_SE             0       // T0CKI有效跳变设置。0:上升沿，1：下降沿
#define TIM0_PAS            0       // 1:分频器分给WDT。
#define TIM0_PS             5       // 预分频比。0~7分别为2、4、8、16、32、64、128、256分频。TIM0时钟频率 = FSYS/4/预分频比。
#define TIM0_CYCLE          156     // 周期值。

//TIM2初始化配置

#define TIM2_CKPS           0       // 预分频。在FSYS/4基础上再次分频，0~2分别为 1、4、16分频
#define TIM2_OUTPS          0       // 后分频。0~15分别代表1~16个定时周期后产生中断。
#define TIM2_CYCLE          100     // 定时周期。注意，最终周期要乘以(TIM2_OUTPS + 1)
#define TIM2_ON             1       // 1:初始化后立即运行，0：初始化后不运行


// PWM初始化配置

#define PWM_CLKDIV          4       // PWM分频。0~7分别代表FOSC的1、2、4、8、16、32、64、128分频。
#define PWM_CYCLE           255     // PWM计数周期，0~1023

#define PWM_CH0_DIR         1       // 输出极性。0:正向；1:反向
#define PWM_CH0_EN          0       // 1：使能(初始化后立即开始输出)
#define PWM_CH0_DUTY        0       // CH0 初值
#define PWM_CH0_AUTO_ON_OFF 0       // 1:当值为0时自动关闭输出（管脚电平取决于输出寄存器，解决值为0依然有脉冲问题）,值不为0时自动开启输出；0：不启用，可节省代码量。

#define PWM_CH1_DIR         0       // 输出极性。0:正向；1:反向
#define PWM_CH1_EN          1       // 1：使能(初始化后立即开始输出)
#define PWM_CH1_DUTY        255     // CH1 初值
#define PWM_CH1_AUTO_ON_OFF 1       // 1:当值为0时自动关闭输出（管脚电平取决于输出寄存器，解决值为0依然有脉冲问题）,值不为0时自动开启输出；0：不启用，可节省代码量。

// 系统滴答定时器选择
// 0 - TIM0
// 2 - TIM2
// 100 - PWM模块
// 意味着Polsys初始化时将会通过 Mcu_TickStart() 调用对应定时器的初始化函数(需要先配置好该定时器，并默认运行且开启中断)，别忘了在中断中调用 Polsys_Tick()。
#define SYS_TICK_SEL		0

// ADC 初始化配置

#define ADC_CLK_SEL         0       // ADC时钟选择。0：FSYS/8；1：FSYS/16；2：FSYS/32；3：FRC（专用32KHZ RC）
#define ADC_TADSEL          1       // 171xE专用 1:16TAD 0:49TAD
#define ADC_CH              11      // ADC初始通道
#define ADC_ON              1       // 1：使能ADC，0：关闭ADC（省电）
#define ADC_DELAY           16      // 171xE专用 根据adc频率调整，对应关系 ==> 1M:4us(不建议) 0.5M:8us 0.25M:16us 0.125:32us

#endif
